package top.szhome.framework.core.tools.util;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

/**
 * 日期时间工具类
 *
 * @author 唐加利
 * @date 2023/7/23
 **/
public class DateUtil {

    /**
     * 日期格式-长格式
     */
    public static final String FORMAT_LONG = "yyyy-MM-dd HH:mm:ss";

    /**
     * 日期格式-短格式
     */
    public static final String FORMAT_DATE = "yyyy-MM-dd";

    /**
     * 日期格式-时间
     */
    public static final String FORMAT_TIME = "HH:mm:ss";

    /**
     * 日期格式-长格式的简单格式，无分隔符
     */
    public static final String FORMAT_LONG_SIMPLE = "yyyyMMddHHmmss";

    /**
     * 日期格式-日期的简单格式，无分隔符
     */
    public static final String FORMAT_DATE_SIMPLE = "yyyyMMdd";
    /**
     * 日期格式-时间的简单格式，无分隔符
     */
    public static final String FORMAT_TIME_SIMPLE = "HHmmss";

    /**
     * 获取日期格式化器
     * @param format
     * @return
     */
    public static final DateTimeFormatter getDateTimeFormatter(String format) {
        return DateTimeFormatter.ofPattern(format, Locale.CHINA);
    }

    /**
     * 获取系统时间
     * @return
     */
    public static final LocalDateTime now() {
        return LocalDateTime.now();
    }

    /**
     * 获取系统时间，可指定日期格式
     * @param format
     * @return
     */
    public static final String now(String format) {
        LocalDateTime now = now();
        DateTimeFormatter formatter = getDateTimeFormatter(format);
        return formatter.format(now);
    }

}
